/*
 * @Author: szx
 * @Date: 2022-01-06 13:21:29
 * @LastEditTime: 2022-01-06 13:49:30
 * @Description:
 * @FilePath: \leetcode\700-799\738\738.js
 */
/**
 * @param {number} n
 * @return {number}
 */
// var monotoneIncreasingDigits = function (n) {
//     n = n.toString();
//     n = n.split('').map((item) => {
//         return +item;
//     });
//     let flag = Infinity;
//     for (let i = n.length - 1; i > 0; i--) {
//         if (n[i - 1] > n[i]) {
//             flag = i;
//             n[i - 1] = n[i - 1] - 1;
//             n[i] = 9;
//         }
//     }

//     for (let i = flag + 1; i < n.length; i++) {
//         n[i] = 9;
//     }
//     n = n.join('');
//     return +n;
// };
var monotoneIncreasingDigits = function(n) {
    const strN = n.toString().split('').map(v => +v);
    let i = 1;
    while (i < strN.length && strN[i - 1] <= strN[i]) {
        i += 1;
    }
    if (i < strN.length) {
        while (i > 0 && strN[i - 1] > strN[i]) {
            strN[i - 1] -= 1;
            i -= 1;
        }
        for (i += 1; i < strN.length; ++i) {
            strN[i] = 9;
        }
    }
    return parseInt(strN.join(''));
};

console.log(monotoneIncreasingDigits(1000));
